function [res_lkgr, timeElapsed, resAIO] = LKGr_single_dataset(Ks, Y, alphas, betas,  gamms, mus, nRepeat )
[nSmp, ~, nKernel] = size(Ks);
nCluster = length(unique(Y));
if ~exist('nRepeat', 'var')
    nRepeat = 1;
end

paramCell = LKGr_build_param(alphas, betas, gamms, mus);
nParam = length(paramCell);
tic;
resAIO = zeros(nParam, 3);
for i2 = 1:nParam
    param = paramCell{i2};
    disp(['iParam= ', num2str(i2), ', totalParam= ', num2str(nParam), ', alpha= ', num2str(param.alpha), '; beta= ', num2str(param.beta), ', gamma= ', num2str(param.gamma), '; mu= ', num2str(param.mu)]);
    res_param = [];
    options = [];
    options.alpha = param.alpha;
    options.beta = param.beta;
    options.gamma = param.gamma;
    options.mu = param.mu;
    options.nRepeat = nRepeat;
    for i1 = 1:1
        [label_lkgr, Z, K, w] = LKGr(Ks, param.alpha, param.beta, param.gamma, param.mu, nCluster);
        res_param = [res_param; ClusteringMeasure(Y, label_lkgr)];%#ok<AGROW>
    end
    resAIO(i2,:) = mean(res_param, 1);
    max(resAIO, [], 1)
end
res_lkgr = max(resAIO, [], 1);
timeElapsed = toc;